package com.ruoyi.system.service.msg.handler;

import com.ruoyi.system.dto.H5MsgConfirmDTO;
import com.ruoyi.system.entity.MsgPushTaskDO;
import com.ruoyi.system.entity.MsgPushTaskItemDO;
import com.ruoyi.system.enums.MsgTypeEnum;
import com.ruoyi.system.service.msg.H5MsgConfirmHandler;
import org.springframework.stereotype.Component;

import java.util.Objects;

/**
 * 合同签署消息确认处理器
 * 处理合同签署类型消息的确认逻辑，包括签署文件上传和状态更新
 * 
 * @author ruoyi
 * @since 2024-01-01
 */
@Component
public class ContractSignConfirmHandler implements H5MsgConfirmHandler {

    @Override
    public boolean supports(Integer msgType) {
        return Objects.equals(msgType, MsgTypeEnum.CONTRACT_SIGN.getCode());
    }

    @Override
    public void handleConfirm(MsgPushTaskItemDO item, MsgPushTaskDO task, H5MsgConfirmDTO confirmDTO) {
        // 合同签署后的业务逻辑
        // 注意：签署状态更新已在通用逻辑中处理，这里只处理合同特有的业务逻辑
        
        // 这里可以添加合同签署后的业务逻辑
        // 例如：更新合同状态、发送通知、记录合同签署历史等
        System.out.println("处理合同签署确认，签署文件: " + confirmDTO.getSignFileUrl() + 
                          ", 用户ID: " + confirmDTO.getH5UserId());
        
        // 可以在这里调用合同服务来更新合同状态
        // 例如：contractService.updateContractStatus(task.getBusinessId(), "SIGNED");
    }
}
